package cn.yogehaoren.badfox.annotation;

import cn.yogehaoren.badfox.core.BadFoxQueue;
import cn.yogehaoren.badfox.def.DefaultLocalMixQueue;
import org.springframework.stereotype.Component;

import java.lang.annotation.*;

/**
 * 用于定义一个类为爬虫规则文件
 *
 */
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Fox {
    /**
     * @return 如果需要特殊指定爬虫规则的名字，那么就设置这个就好了，默认爬虫类名
     */
    String name() default "";

    /**
     * @return  e.g.  http://user:passwd@host:port
     * https://user:passwd@host:port
     * socket://user:passwd@host:port
     */
    String proxy() default "";

    /**
     * @return 指定crawler是否启用cookie
     */
    boolean useCookie() default false;

    /**
     * @return 抓取请求间隔延时，单位为秒
     */
    int delay() default 0;

    /**
     * @return 用来指定消费队列的具体实现
     */
    Class<? extends BadFoxQueue> queue() default DefaultLocalMixQueue.class;

    /**
     * @return  是否启用系统级去重机制，默认启用
     */
    boolean useUnrepeated() default true;


    /**
     * @return 支持自定义超时时间，单位毫秒，默认15000ms
     */
    int httpTimeOut() default 15000;

    /**
     *
     * @return 是否在容器初始化后自动开启
     */
    boolean autoStart() default true;

}
